package pub.guoxin.oops.auth.service;

import org.springframework.data.domain.Page;
import pub.guoxin.oops.auth.vo.RoleUserVo;
import pub.guoxin.oops.auth.vo.UserInfoChangeVo;
import pub.guoxin.oops.auth.vo.UserVo;
import pub.guoxin.oops.enums.Authority;
import pub.guoxin.oops.model.User;
import pub.guoxin.oops.vo.ResultVo;

import java.util.List;

public interface UserService {

    public Page<UserVo> page(User user, Authority authority, Integer pageNumber, Integer pageSize);

    ResultVo delete(User user, String username);

    ResultVo update(User user, UserInfoChangeVo userVo);

    ResultVo<UserVo> one(User user, String username);

    User one(String username);

    List<RoleUserVo> getRoleUser(User user);

    ResultVo create(User user, UserInfoChangeVo userChangeVo);
}
